Multi-channel trellis shaper

ABSTRACT

A trellis shaper for multi-channel modulation is provided as a means for obtaining significant shaping gain in applications requiring high-performance transceivers. The trellis shaper works across the subchannels in the multi-channel system and accommodates both the variable amounts of power and the different constellation sizes associated with the various tones. This invention offers significant advantage over the more straightforward approach of shaping each subchannel independently in terms of a reduction in delay, a reduction in memory requirements, and a reduction in complexity.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to methods for use in digitalcommunication, in particular, a method for multi-channel trellisshaping.

2. Brief Description of the Prior Art

The purpose of this invention is to provide a method for achievingsignificant shaping gain with acceptable delay and practical memoryrequirements in a discrete multitone (DMT) modulation system. Shapinggain refers to the saving or reduction in transmit power afforded bychoosing a spherical constellation rather than a cubical constellation.It is shown by G. D. Forney Jr. and Lee-Fang Wei in MultidimensionalConstellations-Part I: Introduction, Figures of Merit, and GeneralizedCross Constellations, IEEE Journal on Selected Areas in Communications,vol. 7, no. 6, pp. 877-892, August 1989, that the maximum possibleshaping gain is 1.53 dB.

While a number of shaping approaches have been proposed forsingle-carrier modulation, the application of shaping to a DMT system iscomplicated by the variation in constellation sizes and possiblytransmit power from tone to tone. The straightforward approach would beto apply an optimized, single-carrier shaper independently to eachsubchannel in the DMT system. However, this would result in excessivedelay and overbearing memory requirements. Furthermore, the number ofshapers required would depend upon the number of subchannels used fortransmission, which could be quite large. Hence, this invention showshow one of the single-carrier approaches, namely trellis shaping, may bemodified to work with DMT modulation.

Ideal discrete multitone modulation effectively partitions a channelinto a number of independent, memoryless subchannels, each of which canbe considered as supporting a low-speed quadrature amplitude modulated(QAM) signal. FIG. 1 presents a basic block diagram of a DMTtransmitter. At the input 10 to the system, the bit stream ispartitioned into blocks of size b=RT bits 12, where R is the inputuncoded bit rate, T is the multitone symbol period, and b is the numberof bits contained in one multitone symbol. The bits collected during them^(th) symbol interval are allocated among N subchannels or tones 14 ina manner determined during system initialization with b_(i) bitsdesignated to tone i and Σ b_(i) =b. In FIG. 1, b_(i) designates thenumber of bits on subchannel i and d_(i),m indicates the actual value ofthese bits at symbol time m. On subchannel i, the bits d_(i),m aremapped 18 to a constellation point X_(i),m in a constellation of size2^(b).sbsp.i, and the collection of constellation points {X_(i),m | i=0,. . . , N -1} serves as the input to an Inverse Fast Fourier Transform(IFFT) block 22. The time-domain signal that is transmitted over thechannel is obtained by performing a length 2N IFFT on the complexpoints, where proper conjugacy constraints are imposed to ensure a realvalued signal 24. Since the IFFT is an orthogonal transformation, theaverage transmit power at the input to the transformation will equalthat at the output. The output signals pass through a parallel to serialconversion process 26 to form the signal 28 that is transmitted over thechannel.

To reduce memory requirements in actual implementations, the varioussize constellations required across the tones are supported by one oftwo methods. In the first method, a large constellation is stored inmemory and an embedded labelling scheme is used to access the smallerconstellations which are subsets of the large, stored constellation.Under this method, a simple approach is to order the constellationpoints according to their energy and to assign lower labels to pointswith lower energy requirement where labels are interpreted as unsignedintegers to form the ordering. The resulting constellations are embeddedcircles, as illustrated in FIG. 2 where a 512-point constellation(supporting 9 bits) is represented by the inner asterisks circle and a1024-point constellation (supporting 10 bits) is represented by theentire circle. In the second method, an algorithmic encoder is employedto generate constellation points from given labels. In this method,typically square (for b_(i) even) and cross (for b_(i) odd)constellations are used because it is a relatively simple task to derivealgorithms for mapping labels to points for these constellations. FIG. 3illustrates a 512-point cross constellation and a 1024-point squareconstellation separately generated by an algorithmic encoder. Note thatthe 1024-point circular constellation in FIG. 2 is more power efficientthan the 1024-point square constellation in FIG. 3. The difference (indB) in the amount of power required is an example of the shaping gainprovided by a circular constellation over a square constellation in atwo dimensional case. The shaping gain is relatively modest in twodimensions (asymptotically 0.2 dB). The present invention illustrateshow multidimensional shaping techniques can be applied to DMT systems toachieve on the order of 1.0 dB of gain with relative ease.

In addition to the bit distribution {b_(i) }, a power distribution isalso determined during DMT system initialization. The power allocated toeach subchannel determines the size of the two-dimensional regioncovered by each constellation. For instance, in the case of a flat powerallocation (same power to each subcarrier) and given circularconstellations, each constellation will have approximately the sameradius, regardless of the number of constellation points.

Constellations are typically stored or generated based on some definedminimum distance between constellation points, and proper scaling isobtained by first mapping the constellation label to a point on thegeneric constellation and then multiplying the constellation point by aconstant that is stored in the power allocation table.

In summary, a DMT scenario is distinguished from a single-carrierscenario in that the constellation sizes may be variable and the powermay vary from tone to tone.

SEPARATE TRELLIS SHAPERS

In order to provide a contrast to the present invention, basic conceptsof a single-carrier trellis shaping technique is reviewed, as well asthe approach of applying trellis shaping independently to each tone. Afour-state, 2D trellis shaper as discussed by G. D. Forney Jr., TrellisShaping, IEEE transactions on Information Theory, vol. 38, no. 2, pp.281-300, March 1992, is used and an embedded labeling scheme withcircular constellations is presumed for the present discussion.

FIG. 4 depicts a trellis shaper applied to the i^(th) subchannel. Here,the sequence of most significant bits {d_(i),m^(b).sbsp.i⁻¹ } asindicated at 30 is passed through a coset representative generator 32,(H_(s) ⁻¹ (D))^(T), to form an initial sequence of region specifier bits{v_(i),m^(b).sbsp.i, v_(i),m^(b).sbsp.i⁻¹ } as indicated at 34. Sincecircular constellations are used (for the present discussion) and thelabeling scheme assigns lower labels to lower energy points, the regionspecifier bits {v_(i),m^(b).sbsp.i, v_(i),m^(b).sbsp.i⁻¹ } producedduring symbol period m designate one of four concentric circular rings.This concept is depicted in the left-hand side of FIG. 5A where the fourregions are labeled with the four possible values of{v_(i),m^(b).sbsp.i, v_(i),m^(b).sbsp.i⁻¹ }. The sequence{v_(i),m^(b).sbsp.i, v_(i),m^(b).sbsp.i⁻¹ } is subsequently modified bythe modulo two addition of a codeword {c_(i),m¹, c_(i),m⁰ } from therate one-half convolutional code with generator matrix G_(s) (D)= 1+D²,1+D+D² ! and parity check matrix H_(s) (D) to form the sequence{z_(i),m^(b).sbsp.i, z_(i),m^(b).sbsp.i⁻¹ }, which equals{v_(i),m^(b).sbsp.i ⊕ c_(i),m¹, v_(i),m^(b).sbsp.i⁻¹ ⊕ c_(i),m⁰ }. Thechoice of codeword is determined by performing the Viterbi algorithm 38to search for the lowest energy sequence of an equivalence class ofpossible transmit sequences as discussed in the article by G. D. ForneyJr. In particular, the squared magnitude of the constellation pointY_(i),m =f₀ z_(i),m^(b).sbsp.i, z_(i),m^(b).sbsp.i⁻¹,d_(i),m^(b).sbsp.i⁻², . . . , d_(i),m¹, d_(i),m⁰ ! may serve as theweight of a branch in the trellis for the shaping code, where the branchis associated with the label c_(i),m¹ c_(i),m⁰ and f₀ ! denotes themapping of labels to constellation points. A mapping operation f₀ ! 40is subsequently performed to obtain a point from the storedconstellation, and this point is scaled according to the powerdistribution to obtain the transmitted point X_(i),m as indicated at 42.

It is determined from simulation results that the shaping gain of theabove scheme is on the order of 1.0 dB with respect to a squareconstellation for the case of a 128-point constellation. However, in theDMT case, it is of interest to know the shaping gain as a function ofthe unshaped constellation size. FIG. 5 presents shaping gain resultsdetermined by simulation for constellations supporting anywhere from twoto 10 bits, where the shaping gains depicted are with respect to theoriginal unshaped circular constellation. The lower curve in FIG. 5corresponds to the case in which the original embedded labeling schemewas maintained, whereas the upper curve was achieved when the labelingscheme was modified such that the points in the outer-most andnext-to-inner-most rings were labeled from high energy to low energy andthe two most-significant bits of each constellation label in the twomiddle rings were interchanged. The latter modification is equivalent tointerchanging the definitions of regions one and two. FIG. 5A comparesthe standard embedded labeling scheme (left-hand side) with the modifiedlabeling scheme (right-hand side) for an arbitrary constellation size,where the arrows indicate the direction of increasing constellationlabels within each region.

The dependency of the achievable shaping gain on the size of theconstituent constellation implies that the overall shaping gain willdepend on the DMT scenario and in particular on the bit and powerdistributions. Signifying the dependency of shaping gain on theconstellation size 2^(b).sbsp.i as γ_(s) (b_(i)), the total shaping gainrealized for the DMT system may be expressed as: ##EQU1## where {P_(i) }denotes the power distribution. The summation in equation 1 is takenover the set of indices v corresponding to tones actually used fortransmission (i.e. i ε v if b_(i) >.0.).

The application of a separate trellis shaper to each tone clearlybecomes infeasible for a large number of tones. For instance, if the DMTsystem uses length 512 FFTs and assuming that DC and Nyquist are neveravailable for transmission, the number of trellis shapers required maybe as large as 255. Moreover, there is a delay associated with theViterbi algorithm, and the total delay and buffer requirements forseparate trellis shapers would make this approach unacceptable for mostapplications. Finally, while theoretically a separate constellation withthe modified labeling scheme could be stored for each constellationsize, in practice one large constellation is stored or an algorithmicencoder is used. Hence, from the implementation standpoint, it isdesirable to derive a trellis shaping scheme that uses one trellisshaper and requires one stored constellation.

SUMMARY OF THE INVENTION

It is an objective of the present invention to provide methods andapparatuses for trellis shaping that decrease the complexity of thetrellis shaper by the number of subchannels.

It is another objective of the present invention to provide methods andapparatuses for trellis shaping that decrease delay in trellis shapingby an order of magnitude when compared to applying separate trellisshapers to each subchannel.

It is yet another objective of the present invention to provide methodsand apparatuses for trellis shaping that require significantly lessmemory.

It is still another objective of the present invention to providemethods and apparatuses for trellis shaping that accommodate variablenumbers of bits per subchannel and allow for variable amounts oftransmit power per subchannel.

It is still another objective of the present invention to providemethods and apparatuses for trellis shaping that improve shaping gainwhen compared to shaping gain achieved when trellis shaping is appliedseparately to each subchannel.

The present invention presents a method of trellis shaping"down-the-block". A single trellis shaper is used by varying theposition of the bit sent to the coset representative generator from toneto tone according to the information stored in the bit allocation table.The index i in FIG. 4 now signifies the subcarrier as well as variationof the time period. When the shaper is used with embeddedconstellations, a single constellation is stored in memory according tothe original embedded labeling scheme and the alternative labelingscheme that provides better shaping performance is enforced by using thefollowing algorithm for mapping labels to points. Given a b_(i) -bitlabel d^(b).sbsp.i⁻¹, d^(b).sbsp.i⁻², d^(b).sbsp.i⁻³, . . . , d¹, d⁰ !first check to see whether or not b_(i) ≦4. If so, then theconstellation point X is looked up in the normal way:

    X=f.sub.0   d.sup.b.sbsp.i.sup.-1, d.sup.b.sbsp.i.sup.-2, d.sup.b.sbsp.i.sup.-3, . . . , d.sup.1, d.sup.0 !

where f₀ ! denotes the mapping operation. On the other hand, ifb_(i) >4, then the mapping is performed based on the values of theregion specifier bits as follows:

    d.sup.b.sbsp.i.sup.-1 d.sup.b.sbsp.i.sup.-2 =00→ X=f.sub.0  d.sup.b.sbsp.i.sup.-1, d.sup.b.sbsp.i.sup.-2, d.sup.b.sbsp.i.sup.-3 . . . , d.sup.2, d.sup.1, d.sup.0 !

    d.sup.b.sbsp.i.sup.-1 d.sup.b.sbsp.i.sup.-2 =01→ X=f.sub.0  d.sup.b.sbsp.i.sup.-1, d.sup.b.sbsp.i.sup.-2, d.sup.b.sbsp.i.sup.-3, . . . , d.sup.2, d.sup.1, d.sup.0 !

    d.sup.b.sbsp.i.sup.-1 d.sup.b.sbsp.i.sup.-2 =10→ X=f.sub.0  d.sup.b.sbsp.i.sup.-1, d.sup.b.sbsp.i.sup.-2, d.sup.b.sbsp.i.sup.-3, . . . , d.sup.2, d.sup.1, d.sup.0 !

    d.sup.b.sbsp.i.sup.-1 d.sup.b.sbsp.i.sup.-2 =11→ X=f.sub.0  d.sup.b.sbsp.i.sup.-1, d.sup.b.sbsp.i.sup.-2, d.sup.b.sbsp.i.sup.-3, . . . , d.sup.2, d.sup.1, d.sup.0 !

where d is the binary complement of d.

In the receiver, the decoded constellation point's label is firstretrieved, and the following algorithm is used to modify the initiallabel to obtain the unshaped label transmitted. Given the b_(i) -bitlabel c^(b).sbsp.i⁻¹, c^(b).sbsp.i⁻², . . . , c², c¹, c⁰ !, first checkto see whether or not b_(i) ≧4. If so, then no modification is required.On the other hand, if b_(i) >4, then the mapping is performed based onthe values of the two most-significant bits as follows:

    c.sup.b.sbsp.i.sup.-1 c.sup.b.sbsp.i.sup.-2 =00→ c.sup.b.sbsp.i.sup.-1, c.sup.b.sbsp.i.sup.-2, c.sup.b.sbsp.i.sup.-3 . . . , c.sup.2, c.sup.1, c.sup.0

    c.sup.b.sbsp.i.sup.-1 c.sup.b.sbsp.i.sup.-2 =01→ c.sup.b.sbsp.i.sup.-1, c.sup.b.sbsp.i.sup.-2, c.sup.b.sbsp.i.sup.-3, . . . , c.sup.2, c.sup.1, c.sup.0

    c.sup.b.sbsp.i.sup.-1 c.sup.b.sbsp.i.sup.-2 =10→ c.sup.b.sbsp.i.sup.-1, c.sup.b.sbsp.i.sup.-2, c.sup.b.sbsp.i.sup.-3, . . . , c.sup.2, c.sup.1, c.sup.0

    c.sup.b.sbsp.i.sup.-1 c.sup.b.sbsp.i.sup.-2 =11→ c.sup.b.sbsp.i.sup.-1, c.sup.b.sbsp.i.sup.-2, c.sup.b.sbsp.i.sup.-3, . . . , c.sup.2, c.sup.1, c.sup.0

One of the consequences of performing shaping down the block is that anappropriate weighing must be given to the metrics in the Viterbialgorithm according to the power allocated to each tone. This is incontrast to the case in which a separate trellis shaper is applied toeach tone since for that implementation the transmit sequence isoptimized on a subchannel by subchannel basis, and the sequence ofpoints selected is independent of the power distribution. The solutionin the case of shaping down the block is to scale the points by theconstants stored in the power allocation table before computing themetrics for the Viterbi algorithm; alternatively, the metrics may bescaled by the squared magnitudes of the entries in the power allocationtable. In this manner, the trellis shaper will perform a search for thelower energy sequence on candidate sequences of properly scaled points.It can be shown that the performance of shaping down the block istheoretically better than shaping on a tone by tone basis.

With an algorithmic encoder, the performance of the trellis shaperdepends somewhat upon the shape and labeling scheme of the underlying 2Dconstellations. Here, an embodiment of an algorithmic encoder thatgenerates square and cross constellations with labeling schemes thatwork fairly well with the four-state shaper is presented. The presentinvention is not limited to a particular type of underlyingconstellation. Other embodiments of the algorithmic encoder could beused as well.

The input to the algorithmic encoder is a b_(i) -bit label designated asd^(b).sbsp.i⁻¹, d^(b).sbsp.i⁻², d^(b).sbsp.i⁻³ . . . , d², d¹, d⁰ !. Inthe case where b_(i) is even, the initial step is to extract the cosetbits, (d¹, d⁰), and the region specifier bits, (d^(b).sbsp.i⁻¹,d^(b).sbsp.i⁻²) for the b_(i) -bit label, where it is understood thatd^(b).sbsp.i⁻¹ =0 and d^(b).sbsp.i⁻² =0 if b_(i) =2. If b_(i) >4, theremaining b_(i) -4 bits are separated into two (b_(i) -4)/2-bitquantities, ixi and ixq, where ixi equals d^(b).sbsp.i^(/2-1) . . . , d²! and ixq equals d^(b).sbsp.i⁻³ . . . , d^(b).sbsp.i^(/2) !. These twopoints are used to determine a point (x, y), where (x, y) equals(ixi+0.5, ixq+0.5) in the first quadrant, where ixi and ixq areinterpreted as positive integers in two's complement form. If b_(i) ≦4,(x, y) equals (0.5, 0.5) by default. Next, the region bits are used todetermine whether or not to subtract 2.sup.(b.sbsp.i^(/2))-1 from eachcoordinate. Specifically, a new 2D point (x, y) is determined from (x,y) as follows: ##EQU2##

Finally, the point (x,y) to be transmitted is obtained by rotating (x,y) to the proper coset according to the coset bits (d¹, d⁰). Thedecoding operation is easily derived by reversing the operations of theencoder.

For the case where b_(i) is odd, as in the previous case, the coset bits(d¹,d⁰) are extracted, leaving a remaining label of d^(b).sbsp.i⁻¹,d^(b).sbsp.i⁻², . . . , d² !. Next, the bit d^(b).sbsp.i⁻¹ is used todetermine whether or not one of the coordinates is "outer" as istypically done in the generation of cross constellations. Ifd^(b).sbsp.i⁻¹ equals 1, then an outer point is used and the (b_(i)-3)/2-bit quantity, ixi, is formed and set to d.sup.(b.sbsp.i⁺¹)/2, . .. , d³ !, and the (b_(i) -1)/2-bit quantity, ixq, is formed and set to1, 0, d^(b).sbsp.i⁻², . . . , d.sup.(b.sbsp.i⁺³)/2 !. Furthermore, ixiand ixq are interchanged if d² equals 1.

On the other hand, when d^(b).sbsp.i⁻¹ equals 0, both coordinates are"inner". In this case, the two (b_(i) -3)/2-bit quantities, ixi and ixq,are set to d^(b).sbsp.i⁻³, d^(b).sbsp.i⁻⁵, . . . , d² ! andd^(b).sbsp.i⁻², d^(b).sbsp.i⁻⁴, . . . , d³ ! respectively. Furthermore,if d^(b).sbsp.i⁻² equals 1, then ixi and ixq are modified by invertingthe rest of the bits to set ixi and ixq to d^(b).sbsp.i⁻³,d^(b).sbsp.i⁻⁵, . . . , d² ! and d^(b).sbsp.i⁻², d^(b).sbsp.i⁻⁴, . . . ,d³ !, respectively.

The final points are obtained by setting the quantity (x, y) to(ixi+0.5, ixq+0.5), where ixi and ixq are interpreted as positiveintegers, and rotating the point to the proper coset according to (d¹,d⁰) to obtain (x, y).

Note that the present invention can be applied to all multi-carriertransmission system.

An advantage of the present invention is that it provides methods andapparatuses for trellis shaping that decrease the complexity of thetrellis shaper by the number of subchannels.

Another advantage of the present invention is that it provides methodsand apparatuses for trellis shaping that decrease delay in trellisshaping by an order of magnitude when compared to applying separatetrellis shapers to each subchannel.

Still another advantage of the present invention is that it providesmethods and apparatuses for trellis shaping that require significantlyless memory.

Yet still another advantage of the present invention is that it providesmethods and apparatuses for trellis shaping that accommodate variablenumbers of bits per subchannel and allow for variable amounts oftransmit power per subchannel.

Another advantage of the present invention is that it provides methodsand apparatuses for trellis shaping that improve shaping gain whencompared to shaping gain achieved when trellis shaping is appliedseparately to each subchannel.

These and other objects and advantages of the present invention will nodoubt become apparent to those skilled in the art after having read thefollowing detailed description of the preferred embodiment which isillustrated in the several figures of the drawing.

IN THE DRAWINGS

FIG. 1 illustrates a simplified transmitter for a discrete multitonemodulation system.

FIG. 2 shows a 512-point circular constellation embedded in a 1024-pointcircular constellation.

FIG. 3 shows a 512-point cross constellation and a 1024-point squareconstellation.

FIG. 4 illustrates a 4-state, two dimensional (2D) trellis shaper forthe i^(th) subchannel.

FIG. 5 illustrates the performance of a 4-state trellis shaping code asa function of constellation size.

FIG. 5A shows a comparison of standard and modified labeling schemes forembedded circular constellation.

FIG. 6 shows the system overview of a discrete multitone systemcontaining an embodiment of the present invention.

FIG. 7 is a detailed illustration of the multi-channel encoder of anembodiment of the present invention.

FIG. 8 is an illustration of an embodiment of the present invention, amulti-channel trellis shaper.

FIG. 9 is an illustration of a coset representative generator.

FIG. 10 is an example of a state diagram for a 4-state encoder.

FIGS. 11-12 is a flowchart illustrating the functional steps of thepresent invention which is a multi-channel trellis shaper.

FIG. 13 illustrates the flowchart of a multi-channel constellationmapper for embedded constellations to work with the present invention.

FIGS. 14-16 is a flowchart illustrating the functional steps of analgorithmic encoder for multi-channel constellation mapping.

FIG. 17 is a block diagram of a multi-channel decoder of the presentinvention.

FIG. 18 illustrates an embodiment of the multi-channel inverse trellisshaper.

FIG. 19 illustrates one possible inverse coset representative generator.

FIG. 20 is a flowchart illustrating the decoding steps to return thereceived constellation point to the original message.

FIGS. 21-24 is a flowchart illustrating the steps of the algorithmicdecoder to decode the received constellation point to the originalmessage.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 6 illustrates a system overview of a multi-channel system, wheredata 50 is first forward-error-correction (FEC) encoded 52 and allocatedto the subchannels according to the transmission quality of eachrespective subchannel. The encoded information for each subchannel 54 isthen trellis encoded and trellis shaped to produce the constellationpoint 58 that determines the amplitude and phase of the subcarrier. Themulti-channel modulator 60 modulates the subcarriers with theconstellation points to form the signal that is transmitted through amedium 64, which can be a cable, free space, a digital subscriber line,or other types of media.

On the receiving end, the multi-channel demodulator 66 demodulates thereceived subcarriers and generates an output point 68 from the signal.The output point passes through the trellis decoder and the inversetrellis shaper 70 to produce predecoded information 72. The predecodedinformation is further decoded by the FEC decoder 74 to obtain theoriginal data 76. Note that other encoding methods although notillustrated may be employed in a multi-channel system. Furthermore,although a trellis encoder is shown, it is not essential to the presentinvention. The present invention is directed to a method for trellisshaping of bit streams in a multi-channel system.

As illustrated by FIG. 7, the multi-channel FEC encoder 52 block encodesthe data 50 to produce block encoded data, and the interleaver 80interleaves the block encoded data to produce interleaved block encodeddata. This data is then allocated to the subcarriers 82 where asubcarrier i is allocated b_(i) bits according to a bit allocation table84, which stores the number of bits per symbol for each respectivecarrier. The number of bits allocated to a subcarrier is a function ofthe signal-to-noise ratio of that subcarrier determined atinitialization of the transmission process. The bits for a subcarrierare passed to the trellis encoder and trellis shaper 56 which generatesa point 58 that is used to modulate a subcarrier. The power allocated toa subcarrier is determined at initialization and stored in a powerallocation table 86.

FIG. 8 provides a detailed overview of an embodiment of the presentinvention, namely a trellis shaper. Note that instead of having atrellis shaper for each subcarrier as in the prior art the presentinvention uses one trellis shaper for all of the subcarriers. Furthernote the following symbols and the corresponding definitions used:

N: the number of subchannels;

i: subchannel index, ranging from 0 to N-1;

m: block index, ranging from 0 to ∞;

b_(i) : number of bits allocated to the i^(th) subchannel;

d_(i),m : unshaped constellation label assigned to the i^(th) subchannelduring block period m;

d_(i),m¹ : 1^(st) bit of the constellation label d_(i),m ; bits arelabeled from 0 to b_(i) -1, where 0 corresponds to the least-significantbit (LSB) and b_(i) -1 corresponds to the most-significant bit (MSB);

P_(i) : amount of power allocated to the i^(th) subchannel;

f₀ (•): a mapping operation that maps unique constellation labels intounique 2D points on a grid;

P₀ (b_(i)): The 2D symbol power of a 2^(b).sbsp.i -point constellationbased on the mapping operation f₀ (•). In other words: ##EQU3## We use kas both an index of the summation as well as a constellation label. Inthe latter case, the constellation label is the unsigned binaryrepresentation of the integer k.

The input or label 90 to the trellis shaper d_(i),m^(b).sbsp.i⁻¹ . . .d_(i),m⁰ !, is composed of b_(i) bits. The most significant bit of theinput, d_(i),m^(b).sbsp.i⁻¹,passes through a coset representativegenerator matrix 96 to form an initial sequence of region specifier bitsv_(i),m^(b).sbsp.i 100 and v_(i),m^(b).sbsp.i⁻¹ 98. The region specifierbits and/or complements thereof 104 are combined with the other bits ofthe input d_(i),m^(b-2) . . . d_(i),m⁰ ! to form the constellationlabels 102, L₀₀, L₀₁, L₁₀, and L₁₁ 102. Each of the constellation labelsis then mapped to a unique 2D point on a grid 106-112, and the 2D symbolpower of the 2D point is computed 114 and assigned to the branch metricsfor the state diagram of an x-state encoder. Here, a 4-state encoder isused.

After the branch metrics are computed, the shaping trellis is updated120 to include the new branch metrics, and the trace back operation ofthe Viterbi algorithm is performed 122 to generate the corresponding 2Dsymbol. The symbol is stored in a buffer 124 for reading and writingpurposes.

FIG. 9 illustrates the configuration of a coset representative generator96 used in FIG. 8. The trellis diagram shown in FIG. 10 that correspondsto the generator matrix G_(s) (D) whose parity check matrix is H_(s) (D)is a 4-state, two dimensional diagram with branch labels 00, 01, 10, and11. Note that this is a specific example of a coset representativegenerator and a trellis diagram. The present invention may be applied toother embodiments as well.

Referring to FIG. 11, a flow chart illustrates the trellis shaping stepsof an embodiment of the present invention. In the initialization step132, the subcarrier index, i, and the block index, m, are set to zero.After initialization, the number of bits for the i^(th) subcarrier,b_(i), and the bits represented as d_(i),m^(b).sbsp.i⁻¹ . . . d_(i),m⁰!, are read. Note that the number of bits to be read for a subcarrier isstored in the bit allocation table.

The most significant bit (MSB), d_(i),m^(b).sbsp.i⁻¹, is applied to theinput of a coset representative generator defined by (H_(s) (D)⁻¹)^(T)to generate two region specifier bits v_(i),m^(b).sbsp.i andv_(i),m^(b).sbsp.i⁻¹ 136. With these two region specifier bits, fourconstellation labels are formed as follows 138:

    L.sub.00 =v.sub.i,m.sup.b.sbsp.i, v.sub.i,m.sup.b.sbsp.i.sup.-1, d.sub.i,m.sup.b.sbsp.i.sup.-2, . . . , d.sub.i,m.sup.1, d.sub.i,m.sup.0

    L.sub.01 =v.sub.i,m.sup.b.sbsp.i, v.sub.i,m.sup.b.sbsp.i.sup.-1 ⊕ 1, d.sub.i,m.sup.b.sbsp.i.sup.-2, . . . , d.sub.i,m.sup.1, d.sub.i,m.sup.0

    L.sub.10 =v.sub.i,m.sup.b.sbsp.i ⊕ 1, v.sub.i,m.sup.b.sbsp.i.sup.-1, d.sub.i,m.sup.b.sbsp.i.sup.-2, . . . , d.sub.i,m.sup.1, d.sub.i,m.sup.0

    L.sub.11 =v.sub.i,m.sup.b.sbsp.i ⊕ 1, v.sub.i,m.sup.b.sbsp.i.sup.-1 ⊕ 1, d.sub.i,m.sup.b.sbsp.i.sup.-2, . . . , d.sub.i,m.sup.1, d.sub.i,m.sup.0

where ⊕ denotes the exclusive-or operation, and when performed with abinary "1" it is equivalent to the binary complement. The metrics forthe branches of the trellis diagram are calculated as a function of theconstellation labels and the power assigned to the subcarrier as follows140: ##EQU4## Either the constellation labels L_(c).sbsb.1_(c).sbsb.0 orthe corresponding constellation points f₀ L_(c).sbsb.1_(c).sbsb.0 !associated with the branches are stored.

Referring to FIG. 12, with the metrics for the trellis branchescalculated, the update step of the well-known Viterbi algorithm isperformed to find the best survivor path into each of the four outputstates (as previously illustrated in FIG. 10) 142. The metrics used inthe Viterbi algorithm are the metrics calculated above by equation 2 andthe criteria for the Viterbi algorithm is to minimize the sum of thebranch metrics on each survivor path terminating at the four outputstates. If necessary, each state metric is normalized by summing thebranch metrics on the survivor path terminating in the correspondingstate and subtracting a constant. After calculating the state metrics, abackward trace along the valid trellis path with the least state metricis performed 144. Note that it is important that a valid, continuoustrellis path is maintained; some implementations of the Viterbialgorithm do not ensure such path. The length of the backward trace is aconstant that should be sufficiently large to enable near optimumperformance of the algorithm. The 2D symbol corresponding to the firststate transition on the valid path with the least state metric isproduced 146. This is the end of processing for the i^(th) subcarrierfor block m. In the next loop, by incrementing i 148, the information tobe carried by the next subcarrier is processed. In this manner, all theinformation for all the subcarriers are processed for block period m150. The next block period, m+1, is processed 152 subsequently until alldata are processed. Note that connector B of FIG. 12 returns toconnector B of FIG. 11 after the subcarrier index i, and/or the blockperiod, m, have been changed. Note that it is not necessary to shape thetones in ascending order. The tones may be sorted in a predeterminedorder according to certain desired criteria and then shaped.

Constellation Mapper

To reduce memory requirement in multi-channel applications, the variousconstellation sizes required for each subcarrier can be supported by oneof two methods. The first method is an embedded constellation schemewhere a large constellation is stored in memory and an embedded labelingscheme is used to access the smaller constellations which are subsets ofthe stored larger constellation. The second method is an algorithmicencoder used to generate constellation points algorithmically from thegiven constellation labels. Although there are many constellationmapping methods, these methods do not necessarily work well with themulti-channel trellis shaper. In the preferred embodiment, the followingtwo mapping methods optimize gain for the 4-state multi-channel trellisshaper described above.

Embedded Constellation

A large constellation is stored in memory with an embedded labelingscheme that is generated by ordering points on the half-integer 2D grid,Z² +(0.5, 0.5), according to increasing energy level and assigninglarger labels interpreted as unsigned integers to points with higherenergy. Note that Z² denotes the infinite set of pairs of integers. Theoperation of mapping labels to points on the embedded constellation issignified by f₀ (•). This is simply a table lookup operation. Given aconstellation label, d^(b).sbsp.i⁻¹, d^(b).sbsp.i⁻², d^(b).sbsp.i⁻³, . .. , d², d¹, d⁰ !, the mapping operation f₀ (•) that is used with themulti-channel trellis shaper to obtain a constellation point X isdescribed by FIG. 13.

Referring to FIG. 13, the number of bits, b_(i), and the constellationlabel d^(b).sbsp.i⁻¹, d^(b).sbsp.i⁻², d^(b).sbsp.i⁻³ . . . , d², d¹, d⁰! are read 154. If the number of bits, b_(i), is less than or equal to4, X equals to a straight mapping of the inputted constellation label158. If the most significant bit of the constellation label,d^(b).sbsp.i⁻¹, equals 0 160 and d^(b).sbsp.i⁻² equals 0 162, X is setto a mapping of the inputted constellation label. If d^(b).sbsp.i⁻¹equals 0 and d^(b).sbsp.i⁻² equals 1, X is set to a mapping ofd^(b).sbsp.i⁻¹, d^(b).sbsp.i⁻², d^(b).sbsp.i⁻³, . . . , d², d¹, d⁰ !164. If d^(b).sbsp.i⁻¹ equals 1 and d^(b).sbsp.i⁻² equals 0 166, X isset to a mapping of d^(b).sbsp.i⁻¹, d^(b).sbsp.i⁻², d^(b).sbsp.i⁻³, . .. , d², d¹, d⁰ ! 168. For the last case where d^(b).sbsp.i⁻¹ andd^(b).sbsp.i⁻² both equal 1, X is set to a mapping of d^(b).sbsp.i⁻¹,d^(b).sbsp.i⁻², d^(b).sbsp.i⁻³, . . . , d², d¹, d⁰ ! 170.

Algorithmic Mapping Encoder

The algorithm encoder reads the constellation label and the number ofbits in the constellation label to generate a 2D point X, where X equals(x,y).

Referring to FIG. 14, the constellation label and b_(i) are inputted172. If b_(i) is odd 174, the program flow branches to connector C ofFIG. 15. If b_(i) is even, the two least significant bits (LSBs) aresaved by setting the variable lsbs to d¹ d⁰ 176. After the two LSBs aresaved, the two most significant bits are saved in the variable msbs.Thus, if b_(i) equals 2 178, msbs equals 00 180. Otherwise, msbs equalsd^(b).sbsp.i⁻¹ d^(b).sbsp.i⁻² 182. With the two LSBs and two MSBs of theconstellation label saved, the two MSBs are zeroed out and the two LSBsare removed from the label 184, and the constellation label now equalsd^(b).sbsp.i⁻³, d^(b).sbsp.i⁻⁴, . . . , d³, d² ! . Note that if b_(i) isless than or equal to 4, the label now contains all zeros. If b_(i) isless than or equal to 4, the first intermediate point (x, y) is set to(0.5 0.5) 188. Otherwise, (x, y) is set to ( d^(b).sbsp.i^(/2-1), . . ., d² !+0.5, d^(b).sbsp.i⁻³, . . . , d^(b).sbsp.i^(/2) !+0.5) 190.

The next step is to generate the second intermediate point (x, y) 192.Let msbs₋₋ 1 represent the MSB of the two-bit quantity msbs, and letmsbs₋₋ 0 represent the LSB of the quantity msbs. The second intermediatepoint, (x, y) is formed as follows:

    for msbs.sub.-- 1=0 x=x

    for msbs.sub.-- 1=1 x=x-2.sup.(b.sbsp.i.sup./2)-1

    for msbs.sub.-- 0=0 y=y

    for msbs.sub.-- 0=1 y=y-2.sup.(b.sbsp.i.sup./2)-1

The final point (x, y), referring to connector D of FIG. 16, is obtainedby rotating the second intermediate point by 0°, 90°, 180°, or 270° asindicated by d¹, d⁰, which is stored in lsbs. The four possiblecombinations from d¹ and d⁰ could be used to represent the four possiblevalues of the rotation. Alternatively, it could be used to specify oneof the four cosets of the lattice 2Z² in Z².

For the case where the number of bits in the constellation is odd,referring to connector C of FIG. 15, the two LSBs of the constellationlabel are saved by setting lsbs to d¹, d⁰ 194, and removing them fromthe label 196. If d_(b).sbsb.i₋₁ does not equal to one 198, the programflow transfers to connector E. If d^(b).sbsp.i⁻¹ equals one 198, a flag,swapbit, is set to d² 200, and the LSB, d², of the label is removed.Note that if b_(i) =3, the label would be all zeros now. If the swapbitequals 0 202, two unsigned integers, ixi and ixq are formed as follows:##EQU5## otherwise, swapbit equals 1 and ixi and ixq are set to:##EQU6## The second intermediate point (x, y) is set to (ixi+0.5,ixq+0.5). The final point, (x, y), referring to connector D of FIG. 16,is generated in the same manner as described above in the case whereb_(i) is even.

For the case where b_(i) is odd and d^(b).sbsp.i⁻¹ is not one, referringto connector E of FIG. 16, if b_(i) equals 3 210, the secondintermediate point, (x, y), is set to (0.5, 0.5) 212, and the finalpoint is obtained by rotating (x, y) by d¹, d⁰ 224. If b_(i) does notequal to 3 210 and d^(b).sbsp.i⁻² equals 0 214, the second intermediatepoint, (x, y), is set to ( d^(b).sbsp.i⁻³, d^(b).sbsp.i⁻⁵, . . . , d²!+0.5, d^(b).sbsp.i⁻², d^(b).sbsp.i⁻⁴, . . . , d³ !+0.5) 216. Ifd^(b).sbsp.i⁻² does not equal to 0 214 and b_(i) equals 5 218, thesecond intermediate point, (x, y), is set to (d² +0.5, d^(b).sbsp.i⁻²+0.5) 222. Otherwise, if b_(i) does not equal to 5 218, the secondintermediate point is set to ( d^(b).sbsp.i⁻³, d^(b).sbsp.i⁻⁵, . . . ,d² !+0.5, d_(b).sbsb.i₋₂, d^(b).sbsp.i⁻⁴, . . . , d³ !+0.5) 220. Thefinal point, (x, y), is obtained by rotating (x, y) by d¹ and d⁰ 224 asexplained above.

MULTI-CHANNEL DECODER

On the receiver side, referring to FIG. 17, the modulated waveform isreceived by the multi-channel decoder. Each of the received pointsX_(i),m is inverse trellis shaped and trellis decoded 232 to extractb_(i) bits 233 from the i^(th) subcarrier in accordance with the bitallocation table 234. The bits are reassembled 236 for block m and sentto the deinterleaver 240 and the block decoder 242 to reconstruct theoriginal message or data 244.

FIG. 18 shows a detailed illustration of the inverse trellis shaper. Thenoisy received constellation point Y_(i),m, corresponding to the i^(th)tone at the output of the multi-channel demodulator during symbol m isdecoded 247 to produce X_(i),m on the grid Z² +(0.5, 0.5). This decodingstep might be a simple slicing operation (in the uncoded case) or a morecomplicated Viterbi detection (if trellis coding is applied). The pointX_(i),m is mapped 246 to a constellation label z_(i),m^(b).sbsp.i,z_(i),m^(b).sbsp.i⁻¹, d_(i),m^(b).sbsp.i⁻², . . . , d_(i),m¹, d_(i),m⁰!, and this operation is the inverse of the mapping operation of thetransmitter. The two MSBs of the constellation label, z_(i),m^(b).sbsp.iand z_(i),m^(b).sbsp.i⁻¹ as indicated at 248, are sent through thecircuit H_(s) (D)^(T) 250 to obtain d_(i),m^(b).sbsp.i⁻¹ 252, which iscombined with d_(i),m^(b).sbsp.i⁻², . . . , d_(i),m⁰ ! 254 to generatethe decoded constellation label d_(i),m^(b).sbsp.i⁻¹,d_(i),m^(b).sbsp.i⁻², . . . , d_(i),m¹, d_(i),m⁰ ! with b_(i) bits 233.

An example of the circuit H_(s) (D)^(T) is illustrated by FIG. 19 whereH_(s) (D)^(T) equals 1+D+D² 1+D² !^(T).

A flow chart, referring to FIG. 20, illustrates the required decodingsteps to undo the trellis shaping operation performed on the transmitterside. At first, block period variable m and channel symbol i are set tozero 260. The next gross step is to decode the received constellationpoint Y_(i),m corresponding to the i^(th) tone of the output of themulti-channel demodulator during symbol period m to a point X_(i),m onthe grid Z² +(0.5, 0.5) 262. The point X_(i),m is mapped to aconstellation label z_(i),m^(b).sbsp.i, z_(i),m^(b).sbsp.i⁻¹,d_(i),m^(b).sbsp.i⁻², . . . , d_(i),m¹, d_(i),m⁰ ! 264 by the inversemapping operation. The coset representative z_(i),m^(b).sbsp.i andz_(i),m^(b).sbsp.i⁻¹ are passed through the circuit H_(s) (D)^(T) toobtain d_(i),m^(b).sbsp.i⁻¹ 266. The bit d_(i),m^(b).sbsp.i⁻¹ iscombined with d_(i),m^(b).sbsp.i⁻², . . . , d_(i),m¹, d_(i),m⁰ ! toproduce the original message d_(i),m^(b).sbsp.i⁻¹, d_(i),m^(b).sbsp.i⁻²,. . . , d_(i),m¹, d_(i),m⁰ !. Then, the tone index is incremented andthe next tone is shaped until all tones are shaped.

INVERSE CONSTELLATION MAPPER

This section explains the two methods of inverse mapping operation.

Embedded Constellation

Note that f₀ (•) denotes the operation of mapping labels to points onthe embedded constellation with the original embedded labeling scheme,and f₀ ⁻¹ (•) denotes the inverse of this mapping operation, which canbe accomplished via table look-up. Given a 2D constellation point X froma 2^(b).sbsp.i -point constellation, the inverse mapping operation, f₀⁻¹ X!, will generate the constellation label c^(b).sbsp.i⁻¹,c^(b).sbsp.i⁻², . . . , c⁰. If b_(i) ≦4, no modification to theconstellation label is required. Otherwise, the final label is obtainedby modifying the constellation label as follows:

    c.sup.b.sbsp.i.sup.-1 c.sup.b.sbsp.i.sup.-2 =00→ c.sup.b.sbsp.i.sup.-1, c.sup.b.sbsp.i.sup.-2, c.sup.b.sbsp.i.sup.-3 . . . , c.sup.2, c.sup.1, c.sup.0

    c.sup.b.sbsp.i.sup.-1 c.sup.b.sbsp.i.sup.-2 =01→ c.sup.b.sbsp.i.sup.-1, c.sup.b.sbsp.i.sup.-2, c.sup.b.sbsp.i.sup.-3, . . . , c.sup.2, c.sup.1, c.sup.0

    c.sup.b.sbsp.i.sup.-1 c.sup.b.sbsp.i.sup.-2 =10→ c.sup.b.sbsp.i.sup.-1, c.sup.b.sbsp.i.sup.-2, c.sup.b.sbsp.i.sup.-3, . . . , c.sup.2, c.sup.1, c.sup.0

    c.sup.b.sbsp.i.sup.-1 c.sup.b.sbsp.i.sup.-2 =11→ c.sup.b.sbsp.i.sup.-1, c.sup.b.sbsp.i.sup.-2, c.sup.b.sbsp.i.sup.-3, . . . , c.sup.2, c.sup.1, c.sup.0

Algorithmic Decoder

Referring to FIG. 21, the inputs to the algorithmic decoder are a pointfrom the grid Z² +(0.5, 0.5) and the number of bits represented by thepoint 270. First, d¹ d⁰ is determined based on the signs of x and y oron the coset of 2Z². Now rotate (x, y) by 0°, 90°, 180°, or 270° so thata new point (x, y), the second intermediate point, is in the firstquadrant (or x>0 and y>0) 272. If b_(i) is not even 274, the logic flowsvia connector F to FIG. 23. If b_(i) is even 274, msbs, ixi and ixq areset to zero. Then, if b_(i) equals 2 280, the logic flows to FIG. 22 viaconnector I. If b_(i) does not equal to 2 280,x>2.sup.(b.sbsp.i^(/2))-2, and y>2.sup.(b.sbsp.i^(/2))-2, the firstintermediate point, x, y, is set to 2.sup.(b.sbsp.i^(/2))-1 -x and2.sup.(b.sbsp.i^(/2))-1 -y respectively, and msbs is set to 3 (or binary11) 286. The program flows to FIG. 22 via connector H.

Referring to FIG. 22, from connector G, if x>2.sup.(b.sbsp.i^(/2))-2 andy<2.sup.(b.sbsp.i^(/2))-2, x, y are set to y and 2.sup.(b.sbsp.i^(/2))-1-x respectively, and msbs is set to 1. The program now flows to the nextstep 300. Otherwise, if x<2.sup.(b.sbsp.i^(/2))-2 andy>2.sup.(b.sbsp.i^(/2))-2, x, y are set to 2.sup.(b.sbsp.i^(/2))-1 -yand x respectively, and msbs is set to 2 296. Else, x, y are set to yand x respectively and msbs is set to zero 298. At this point x, y hasbeen set depending on the values of x and y. Now, let the variable,mask, consist of (b_(i) -4)/2 ones. Ixi and ixq are set to .leftbrkt-bot.x.right brkt-bot. & mask and .left brkt-bot.y.right brkt-bot. &mask where .left brkt-bot..right brkt-bot. denotes taking the integerpart of the variable and "&" denotes the binary "AND" operation. Thelabel is determined by (msbs<<(b_(i) -2))+(ixq<<b_(i) /2)+(ixi<<2)+d¹d⁰, 302, where<<and>>denotes shifting to the left and the rightrespectively.

Referring to FIG. 23, connector F (from FIG. 21), if .leftbrkt-bot.x.right brkt-bot.≧2.sup.(b.sbsp.i⁻³)/2 or .leftbrkt-bot.y.right brkt-bot.≧2.sup.(b.sbsp.i⁻³)/2 304, go to decision step306. Else, the logic flows to FIG. 24 via connector J. If .leftbrkt-bot.x.right brkt-bot.≧2.sup.(b.sbsp.i⁻³)/2 and b_(i) >3 306, aflag, S, is set to 1, and ixi and ixq are set to .left brkt-bot.y.rightbrkt-bot. and .left brkt-bot.x.right brkt-bot. respectively. Else flag Sis set to 0 and ixi and ixq are set to .left brkt-bot.x.right brkt-bot.and .left brkt-bot.y.right brkt-bot. respectively. Then, ixq is reducedby 2.sup.(b.sbsp.i⁻³)/2 312. Now let the variable m consist of (b_(i)-3)/2 ones. Bits in ixi and ixq are masked off by setting ixi to (ixi &m) and ixq to (ixq & (m>>1)) 312. The final label equals (1<<(b_(i)-1))+(ixq<<(b_(i) +3)/2)+(ixi<<3)+(S<<2)+d¹ d⁰ 314. In effect,

    for b.sub.i =3 label=1, d.sup.1, d.sup.0

    for b.sub.i =5 label=1, ixi, s, d.sup.1, d.sup.0

    for b.sub.i >5 label=1, ixq, ixi, s, d.sup.1, d.sup.0

Referring to FIG. 24, connector J (from FIG. 23), if b_(i) equals 3 316,the final label is set to d¹ d⁰. Otherwise, ixi and ixq are set to .leftbrkt-bot.x.right brkt-bot. and .left brkt-bot.y.right brkt-bot.respectively 320. Now let a.sup.(b.sbsp.i⁻⁵)/2, a.sup.(b.sbsp.i⁻⁷)/2, .. . , a⁰ ! represent the bits in the quantity ixi and letb.sup.(b.sbsp.i⁻⁵)/2, b.sup.(b.sbsp.i⁻⁷)/2, . . . , b⁰ ! represent thebits in the quantity ixq 322. If a.sup.(b.sbsp.i⁻⁵)/2 equals 0 324, thefinal label equals a.sup.(b.sbsp.i⁻⁵)/2, b.sup.(b.sbsp.i⁻⁵)/2,a.sup.(b.sbsp.i⁻⁷)/2, b.sup.(b.sbsp.i⁻⁷)/2, . . . , a⁰, b⁰, d¹, d⁰ !326. Else, the final label equals a.sup.(b.sbsp.i⁻⁵)/2,b.sup.(b.sbsp.i⁻⁵)/2, a.sup.(b.sbsp.i⁻⁷)/2, b.sup.(b.sbsp.i⁻⁷)/2, . . ., a⁰, b⁰, d¹, d⁰ ! 328.

Although the present invention has been described above in terms of aspecific embodiment, it is anticipated that alterations andmodifications thereof will no doubt become apparent to those skilled inthe art. It is therefore intended that the following claims beinterpreted as covering all such alterations and modifications as fallwithin the true spirit and scope of the invention.

What is claimed is:
 1. A method for shaping data for transmission by amulti-channel modulation system having N subchannels, comprising thesteps of:(a) allocating to each of said N subchannels a predeterminedplurality of bits; (b) sequentially trellis shaping the bits for each ofsaid N subchannels in a predetermined order to generate trellis shapedconstellation points for said subchannels; and (c) simultaneouslymodulating said constellation points for transmission.
 2. A method asrecited in claim 1 and further including the steps of:(d) receiving saidmodulated constellation points; and (e) sequentially inverse trellisshaping a received constellation point for each said subchannel in saidpredetermined order to reproduce said bits allocated to each of saidsubchannels.
 3. A method as recited in claim 2 wherein said allocatedbits of each said subchannel have at least one most significant bit andsaid trellis shaping step includes the following substeps:(1) using eachsaid most significant bit to generate at least one region specifier bit;(2) substituting said region specifier bit for said most significant bitto produce a constellation label; and (3) mapping said constellationlabel to produce a particular constellation point.
 4. A method asrecited in claim 3 wherein said multi-channel modulation system uses aViterbi algorithm having at least two states, and said trellis shapingstep further includes the substeps of:(4) computing a power requirementfor each of said states as a function of said particular constellationpoint and generating a corresponding branch metric extending a trellisdiagram; (5) updating the branch metrics for each said state; (6)tracing back along a valid path of said trellis diagram to find a statehaving the lowest power requirement; and (7) generating a constellationpoint corresponding to the state having the lowest power requirement. 5.A method as recited in claim 3 wherein said trellis shaped constellationpoints are generated using a table look-up method where said trellisshaped constellation points are pre-calculated and stored in one or moretables.
 6. A method as recited in claim 3 wherein said trellis shapedconstellation points are generated using a predefined algorithmicencoder.
 7. A method as recited in claim 6 wherein said algorithmicencoder performs the steps of:for a constellation label with even numberof bits, saving the two least significant bits of said constellationlabel, saving the two most significant bits of said constellation label,removing said two least significant bits and said two most significantbits from said constellation label, generating a first intermediateconstellation point by incrementing selected bits of said constellationlabel by a predetermined value, generating a second intermediateconstellation point as a function of said saved most significant bits,and rotating said second intermediate constellation point to adesignated quadrant as a function of said saved least significant bitsto produce a constellation point; and for a constellation label with oddnumber of bits,removing the two least significant bits from saidconstellation label, and saving said two least significant bits forsubsequent use, if the most significant bit of said constellation labelequals one, determining a first intermediate constellation point as afunction of the number of bits in said constellation label anddetermining a second intermediate constellation point by summing saidfirst intermediate constellation point with a predetermined value, ifthe most significant bit of said constellation label equals zero,generating said second intermediate constellation point as a function ofthe number of bits in said constellation label and the value of thesecond most significant bit, and rotating said second intermediateconstellation point to a designated quadrant as a function of said savedleast significant bits to produce a constellation point.
 8. A method asrecited in claim 2 wherein said inverse trellis shaping step includesthe following substeps:(1) inverse mapping said received constellationpoint to a predecoded constellation label having at least one regionspecifier bit; (2) sending said region specifier bit through an inversecoset generator to generate at least one most significant bit; and (3)substituting said region specifier bit with said most significant bitfrom said predecoded constellation label to produce a decodedconstellation point.
 9. A method as recited in claim 1 wherein saidallocated bits of each said subchannel have at least one mostsignificant bit and said trellis shaping step includes the followingsubsteps:(1) using each said most significant bit to generate at leastone region specifier bit; (2) substituting said region specifier bit forsaid most significant bit to produce a constellation label; and (3)mapping said constellation label to produce a particular constellationpoint.
 10. A method as recited in claim 9 wherein said multi-channelmodulation system uses a Viterbi algorithm having at least two states,and said trellis shaping step further includes the substeps of:(4)computing a power requirement for each of said states as a function ofsaid particular constellation point and generating a correspondingbranch metric extending a trellis diagram; (5) updating the branchmetrics for each said state; (6) tracing back along a valid path of saidtrellis diagram to find a state having the lowest power requirement; and(7) generating a constellation point corresponding to the state havingthe lowest power requirement.
 11. A method as recited in claim 1 whereinsaid trellis shaped constellation points are generated using a tablelook-up method where said trellis shaped constellation points arepre-calculated and stored in one or more tables.
 12. A method as recitedin claim 1 wherein said trellis shaped constellation points aregenerated using a predefined algorithmic encoder.
 13. A method asrecited in claim 12 wherein said algorithmic encoder performs the stepsof:for a constellation label with even number of bits, saving the twoleast significant bits of said constellation label, saving the two mostsignificant bits of said constellation label, removing said two leastsignificant bits and said two most significant bits from saidconstellation label, generating a first intermediate constellation pointby incrementing selected bits of said constellation label by apredetermined value, generating a second intermediate constellationpoint as a function of said saved most significant bits, and rotatingsaid second intermediate constellation point to a designated quadrant asa function of said saved least significant bits to produce aconstellation point; and for a constellation label with odd number ofbits,removing the two least significant bits from said constellationlabel, and saving said two least significant bits for subsequent use, ifthe most significant bit of said constellation label equals one,determining a first intermediate constellation point as a function ofthe number of bits in said constellation label and determining a secondintermediate constellation point by summing said first intermediateconstellation point with a predetermined value, if the most significantbit of said constellation label equals zero, generating said secondintermediate constellation point as a function of the number of bits insaid constellation label and the value of the second most significantbit, and rotating said second intermediate constellation point to adesignated quadrant as a function of said saved least significant bitsto produce a constellation point.
 14. A method for shaping data fortransmission by a multi-channel modulation system having N subchannels,and comprising the steps of:(a) receiving modulated constellationpoints; and (b) sequentially inverse trellis shaping said receivedconstellation points for said subchannels in a predetermined order toreproduce decoded constellation points corresponding in value tooriginally transmitted constellation points.
 15. A method as recited inclaim 14 wherein said inverse trellis shaping step is comprised of thefollowing steps:(1) inverse mapping a received constellation point to apredecoded constellation label having at least one region specifier bit;(2) sending said region specifier bit through an inverse coset generatorto generate at least one most significant bit; and (3) substituting saidregion specifier bit with said most significant bit from said predecodedconstellation label to produce a decoded constellation point.
 16. Amethod for shaping data for transmission by a multi-channel modulationsystem having N subchannels, comprising the steps of:(a) allocating apredetermined number of bits for the i^(th) subchannel of the Nsubchannels, where i increases from 0 to N; (b) generating at least onetrellis shaped constellation point as a function of said bits; (c)repeating steps (a)-(b) for each of said N subchannels in apredetermined order; (d) simultaneously modulating the generated trellisshaped constellation points for said subchannels; (e) repeating steps(a)-(d) for next blocks of bits.
 17. An apparatus for shaping data fortransmission by a multi-channel modulation system having N subchannels,comprising:(a) means for allocating a predetermined number of bits foreach of the N subchannels; (b) means for sequentially generating trellisshaped constellation points in a predetermined order as functions ofsaid allocated bits for said N subchannels; (c) means for simultaneouslymodulating the generated trellis shaped constellation points for saidsubchannels.
 18. An apparatus for shaping data for transmission by amulti-channel modulation system having N subchannels, comprising:(a)means for receiving modulated constellation points; and (b) means forsequentially inverse trellis shaping said received constellation pointsfor said subchannels in said predetermined order to reproduce decodedconstellation points corresponding in value to the originallytransmitted constellation points.
 19. A method as recited in claim 8wherein said inverse mapping step uses table look-up method to generatesaid predecoded constellation label.
 20. A method as recited in claim 8wherein said inverse mapping step uses an algorithmic decoder togenerate said predecoded constellation label, wherein said algorithmicdecoder executes steps functionally inverse to the steps used by saidalgorithmic encoder.
 21. A method as recited in claim 15 wherein saidinverse mapping step uses table look-up method to generate saidpredecoded constellation label.
 22. A method as recited in claim 15wherein said inverse mapping step uses an algorithmic decoder togenerate said predecoded constellation label, wherein said algorithmicdecoder executes steps functionally inverse to the steps used by saidalgorithmic encoder.